A code modulated signal has to be acquired for example in CDMA (Code Division Multiple Access) spread spectrum communications.
For a spread spectrum communication in its basic form, a data sequence is used by a transmitting unit to modulate a sinusoidal carrier and then the bandwidth of the resulting signal is spread to a much larger value. For spreading the bandwidth, the single-frequency carrier can be multiplied for example by a high-rate binary pseudo-random noise (PRN) code sequence comprising values of −1 and 1, which code sequence is known to a receiver. Thus, the signal that is transmitted includes a data component, a PRN component, and a sinusoidal carrier component. A PRN code period comprises typically 1023 chips, the term chips being used to designate the bits of the code conveyed by the transmitted signal, as opposed to the bits of the data sequence.
A well known system which is based on the evaluation of such code modulated signals is GPS (Global Positioning System). In GPS, code modulated signals are transmitted by several satellites that orbit the earth and received by GPS receivers of which the current position is to be determined. Each of the satellites transmits two microwave carrier signals. One of these carrier signals L1 is employed for carrying a navigation message and code signals of a standard positioning service (SPS). The L1 carrier signal is modulated by each satellite with a different C/A (Coarse Acquisition) Code known at the receivers. Thus, different channels are obtained for the transmission by the different satellites. The C/A code, which is spreading the spectrum over a 1 MHz bandwidth, is repeated every 1023 chips, the epoch of the code being 1 ms. The carrier frequency of the L1 signal is further modulated with the navigation information at a bit rate of 50 bit/s. The navigation information, which constitutes a data sequence, can be evaluated for example for determining the position of the respective receiver.
A receiver receiving a code modulated signal has to have access to a synchronized replica of the employed modulation code, in order to be able to de-spread the data sequence of the signal. More specifically, a synchronization has to be performed between the received code modulated signal and an available replica code sequence. Usually, an initial synchronization called acquisition is followed by a fine synchronization called tracking. In both synchronization scenarios, a correlator is used to find the best match between the replica code sequence and the received signal and thus to find their relative shift called code phase. The match can be determined for example with chip accuracy. If an accuracy of a fraction of a chip is needed, the chip can be presented by several samples after an analog-to-digital conversion.
During the acquisition, the phase of the received signal relative to the available replica code sequence can have any possible value due to uncertainties in the position of the satellite and the time of transmission of the received signal.
Moreover, an additional frequency modulation of the received signal may occur, which can be as large as +/−6 kHz, for example due to a Doppler effect and/or a receiver clock inaccuracy. The search of the code phase is therefore usually performed with different assumptions on an additional frequency modulation. For a sensitivity increase, a receiver normally uses long integrations that require the frequency uncertainty to be as small as a few Hz. Therefore, even with the aligned code, a large number of frequency assumptions should be checked.
The initial acquisition is thus a two-dimensional search in code phase and frequency. To meet the real time processing and weak signal sensitivity requirements, usually, a massive correlator bank which is able to check in parallel hundreds and thousands of options is employed for implementing the acquisition stage of a receiver.
Each correlator of such a massive correlator bank checks simultaneously another option defined by a specific code phase and a specific frequency of modulation. To this end, each correlator multiplies a received code modulated signal to a predetermined compensating sinusoidal signal, aligns the compensated code modulated signal with the replica code sequence at a predetermined code-phase, multiplies the samples of the compensated code modulated signal and the samples of the replica code sequence element by element and integrates the multiplication results. The integration can be either purely coherent or include a non-coherent stage. In a non-coherent stage, consecutive coherent integration results for a certain number of multiplication results, respectively, are further integrated by summing the absolute or the squared values of these integration results.
If the assumptions on the code-phase and the frequency modulation belonging to one option are correct for the received code modulated signal, then the correlation results in a larger integration value than in the case of a misalignment or an inappropriate compensation of a frequency modulation. Thus, detecting the correlation peak and comparing it with a certain threshold allows to find the correct code phase and the correct frequency of modulation.
A massive correlator bank has the advantage that it is much faster than a sequential search correlator bank, in which the number of correlators is restricted and in which each correlator searches only one candidate at a time. It is a disadvantage of a massive correlator bank, however, that its complexity is significant, if a correlation value is determined for all desired options.